package me.baicai.weixin.identity.service;

import me.baicai.weixin.application.Result;
import me.baicai.weixin.entity.config.ShopMenu;
import me.baicai.weixin.entity.gcb.Query;
import me.baicai.weixin.entity.identity.Agent;

import java.util.List;


public interface AgentService
{
    Result agentIndex(String openid);

    Result agentChild(String openid, int page, String input);

    Result agentShop(String openid, int page, String input);

    Result agentDevice(String openid, int page, String input);

    Result shopInfo(Integer id);

    Result submitShopInfo(Integer id, String name, String tel, String address, Integer commission,
                          Integer refund, String latitude, String longitude);

    Result submitAgentInfo(Integer id, String name, String tel, String address,
                           Integer commission);

    Result shopMenu(Integer id);

    Result sumbitShopMenu(List<ShopMenu> list);

    Result shopDevice(Integer id, int page, String input);

    Result deleteDevice(String id);

    Result updateDeviceRemark(String sn, String remark);

    Result submitDevice(String sn, String remark, Integer shopid, Integer version);

    Result submitAgent(String openid, Integer id, String name, String tel, String address,
                       Integer commission);

    Result submitShop(String openid, String shopName, String tel, String address,
                      Integer commission, Integer id, String name, Integer refund, String latitude,
                      String longitude);

    Result verifyShopID(Integer id);

    Result incomeStatistics(String openid, Integer page, String type);

    Result agentDeviceInfo(String openid, Integer page, String input);

    Result getAgentShop(String openid);

    Result getAgentEmployee(String openid, String type);

    Result submitEmployee(String openid, String name, Integer id, String type, String telphone,
                          String remark);

    Result deleteEmployee(String openid, Integer id, Integer newId, String type);

    Result updateEmployee(String openid, Integer id, String shop, String type);

    Result getAgentShopList(String openid, String type);

    Result getDeviceOrder(String sn, Integer type);

    Result orderStatistics(String openid, String date);

    Result getDate();

    Result usageAnalysisByAgent(String openid, String date, Integer page, String sort, String type,
                                String input);

    Result usageAnalysisByShop(String openid, String date, Integer page, String sort, String type,
                               String input);

    Result usageAnalysisByDevice(String openid, String date, Integer page, String sort,
                                 String type, String input);

    Result usageAnalysisByShopInfo(String openid, String date, Integer id, String type);

    Result deviceOrderInfo(String openid, String sn, Integer page);

    Result deleteShop(String openid, Integer oldid, Integer newid);

    Result updateEmpName(String openid, Integer id, String name, String telphone);

    Result shopStaff(String openid, Integer id);

    Result submitShopStaff(String openid, Integer id, Integer uid, String type, Integer commission,
                           String name);

    Result updateDeviceDesc(String sn, String desc);

    Result agent(Agent agent);

    Result agent(Query query);

    Result agentShop(Query query);

    Result agent();

    Result allOrders(String value, String start, String end, int page);

    Result allShop(int level, String value, int page);

    Result allAgent(int level, String value, int page);

    Result employee(String id);

    Result withdrawal();
}
